<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

  <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
  <title>chaper 4.2</title>


</head>


<body>

<h3>4.2.1 &nbsp;&#23545;&#35937;</h3>

<p>ECMAScript &#24182;&#27809;&#26377;&#20005;&#26684;&#24847;&#20041;&#19978;&#30340;&#31867;&#65292;&#22312;&#36825;&#19968;&#28857;&#19978;&#19981;&#21516;&#20110; C++&#12289;Smalltalk &#25110;&#32773;
Java&#65292;&#19981;&#36807;&#20316;&#20026;&#26367;&#20195;&#65292;&#23427;&#25903;&#25345;<b>&#26500;&#36896;&#20989;&#25968;(constructors)</b>&#65292;&#21033;&#29992;&#23427;&#65292;&#21487;&#36890;&#36807;&#25191;&#34892;&#20195;&#30721;&#21019;&#24314;&#23545;&#35937;&#65306;&#32473;&#23545;&#35937;
&#20998;&#37197;
&#23384;&#20648;&#65292;&#28982;&#21518;&#36890;&#36807;&#36171;&#21021;&#22987;&#20540;&#26469;&#21021;&#22987;&#21270;&#23545;&#35937;&#23646;&#24615;&#30340;&#20840;&#37096;&#25110;&#37096;&#20998;&#12290;&#25152;&#26377;&#30340;&#26500;&#36896;&#20989;&#25968;&#37117;&#26159;&#23545;&#35937;&#65292;&#20294;&#24182;&#38750;&#25152;&#26377;&#30340;&#23545;&#35937;&#37117;&#26159;&#26500;&#36896;&#20989;&#25968;&#12290;&#27599;&#20010;&#26500;&#36896;&#20989;&#25968;&#37117;&#26377;&#19968;&#20010; <span>Prototype</span>&#65288;&#21407;
&#22411;&#65289;&#23646;&#24615;&#65292;&#34987;&#29992;&#20110;&#23454;&#29616;<b>&#22522;&#20110;&#21407;&#22411;&#32487;&#25215;(prototype-based inheritance)</b>&#21644;<b>&#20849;
&#20139;&#23646;&#24615;(shared properties)</b>&#12290;&#20351;&#29992;&#26500;&#36896;&#20989;&#25968;&#26469;&#21019;&#24314;&#23545;&#35937;&#35201;&#29992;&#21040; <tt>new</tt>&#65288;&#26032;
&#24314;&#65289;&#34920;&#36798;&#21477;&#65307;&#20030;&#20010;&#20363;&#23376;&#65292;<code>new String("A String")</code>
&#21019;&#24314;&#20102;&#19968;&#20010;&#26032;&#30340;&#23383;&#31526;&#20018;&#23545;&#35937;&#12290;&#19981;&#20351;&#29992;
<tt>new</tt>
&#35843;&#29992;&#26500;&#36896;&#20989;&#25968;&#30340;&#21518;&#26524;&#21462;&#20915;&#20110;&#36825;&#20010;&#26500;&#36896;&#20989;&#25968;&#26412;&#36523;&#12290;&#20030;&#20010;&#20363;&#23376;&#65292;<code>String("A String")</code>
&#20135;&#29983;&#19968;&#20010;&#21407;&#35821;&#23383;&#31526;&#20018;&#32780;&#38750;&#23545;&#35937;&#12290;</p>

<p>ECMAScript &#25903;&#25345;<i>&#22522;&#20110;&#21407;&#22411;&#32487;&#25215;</i>&#12290;&#27599;&#19968;&#20010;&#26500;&#36896;&#20989;&#25968;&#37117;&#26377;&#19968;&#20010;&#30456;&#20851;&#32852;&#30340;&#21407;&#22411;&#65292;&#23427;&#21019;&#24314;&#30340;&#25152;&#26377;
&#23545;&#35937;&#37117;&#25317;&#26377;&#19968;&#20010;&#38544;&#21547;&#30340;&#24341;&#29992;&#25351;&#21521;&#37027;&#20010;&#19982;&#20854;&#26500;&#36896;&#20989;&#25968;&#30456;&#20851;&#32852;&#30340;&#21407;&#22411;&#65288;&#25152;&#35859;&#30340;<i>&#23545;&#35937;&#30340;&#21407;&#22411;</i>&#65289;&#12290;&#26356;&#28145;&#19968;&#27493;&#35762;&#65292;&#21407;&#22411;&#36824;&#21487;&#33021;&#20250;&#25317;&#26377;
&#21040;&#23427;&#30340;&#21407;&#22411;&#30340;&#38544;&#21547;&#30340;&#38750;&#31354;&#24341;&#29992;&#65292;&#20381;&#27492;&#31867;&#25512;&#65307;&#36825;&#34987;&#31216;&#20026;<i>&#21407;&#22411;&#38142;(prototypechain)</i>&#12290;&#33509;&#20026;&#26576;&#23545;&#35937;&#20013;&#30340;&#19968;&#20010;&#23646;
&#24615;&#24314;&#31435;&#24341;&#29992;&#65292;&#37027;&#20040;&#27492;&#24341;&#29992;&#25351;&#21521;&#35813;&#23545;&#35937;&#30340;&#21407;&#22411;&#38142;&#20013;&#65292;&#26368;&#20808;&#25317;&#26377;&#21516;&#21517;&#23646;&#24615;&#30340;&#23545;&#35937;&#25152;&#21253;&#21547;&#30340;&#36825;&#20010;&#23646;&#24615;&#12290;&#25442;&#21477;&#35805;&#35828;&#65292;&#39318;&#20808;&#26816;&#26597;&#34987;&#30452;&#25509;&#25552;&#21450;&#30340;&#23545;&#35937;&#26159;&#21542;&#21253;&#21547;&#26576;&#20010;&#23646;&#24615;&#65307;&#22914;&#26524;&#37027;
&#20010;&#23545;&#35937;&#21253;&#21547;&#21516;&#21517;&#23646;&#24615;&#65292;&#34987;&#24341;&#29992;&#25351;&#21521;&#30340;&#23601;&#26159;&#36825;&#20010;&#23646;&#24615;&#65307;&#22914;&#26524;&#37027;&#20010;&#23545;&#35937;&#24182;&#27809;&#26377;&#21253;&#21547;&#21516;&#21517;&#23646;&#24615;&#65292;&#25509;&#19979;&#26469;&#26816;&#26597;&#23427;&#30340;&#21407;&#22411;&#65292;&#22914;&#27492;&#32487;&#32493;&#19979;&#21435;&#12290;</p>

<p>&#36890;&#24120;&#65292;&#22312;&#22522;&#20110;&#31867;&#30340;&#38754;&#21521;&#23545;&#35937;&#35821;&#35328;&#20013;&#65292;&#23454;&#20363;&#35013;&#36733;&#29366;&#24577;&#65292;&#31867;&#35013;&#36733;&#26041;&#27861;&#65292;&#19988;&#32487;&#25215;&#30340;&#20165;&#20165;&#26159;&#32467;&#26500;&#21644;&#34892;&#20026;&#12290;&#32780;&#22312; ECMAScript
&#20013;&#65292;&#29366;&#24577;&#21644;&#26041;&#27861;&#22343;&#30001;&#23545;&#35937;&#35013;&#36733;&#65292;&#19988;&#32467;&#26500;&#12289;&#34892;&#20026;&#12289;&#29366;&#24577;&#37117;&#20250;&#34987;&#32487;&#25215;&#12290;</p>

<p>&#25152;&#26377;&#27809;&#26377;&#30452;&#25509;&#21253;&#21547;&#26576;&#20010;&#23427;&#20204;&#30340;&#21407;&#22411;&#25152;&#21253;&#21547;&#30340;&#29305;&#23450;&#23646;&#24615;&#30340;&#23545;&#35937;&#65292;&#19982;&#23427;&#20204;&#30340;&#21407;&#22411;&#20849;&#20139;&#37027;&#20010;&#23646;&#24615;&#21644;&#23427;&#30340;&#20540;&#12290;&#19979;&#38754;&#30340;&#22270;&#34920;&#38416;&#36848;&#20102;&#19968;&#20999;&#65306;</p>

<p><img alt="&#23545;&#35937;&#20851;&#31995;&#22270;&#34920;" src="figure_1.gif" &#12289;=""></p>

<p>CF &#26159;&#19968;&#20010;&#26500;&#36896;&#20989;&#25968;&#65288;&#24403;&#28982;&#20063;&#26159;&#19968;&#20010;&#23545;&#35937;&#65289;&#12290;&#20351;&#29992; <span>new</span>
&#34920;&#36798;&#24335;&#65292;&#25105;&#20204;&#21019;&#24314;&#20102;&#20116;&#20010;&#23545;&#35937;&#65306;cf<small>1</small>&#65292;cf<small>2</small>&#65292;
cf<small>3</small>&#65292;cf<small>4</small> &#21644; cf<small>5</small>&#12290;
&#36825;&#20123;&#23545;&#35937;&#20013;&#30340;&#27599;&#19968;&#20010;&#37117;&#21253;&#21547;&#20102;&#21517;&#20026; q<small>1</small> &#21644; q<small>2</small>
&#30340;&#23646;&#24615;&#12290;&#34394;&#32447;&#34920;&#31034;&#38544;&#21547;&#30340;&#21407;&#22411;&#20851;&#31995;&#65307;&#27604;&#26041;&#35828;&#65292;cf<small>3</small> &#30340;&#21407;&#22411;&#26159;
CF<small>p</small>&#12290;&#26500;&#36896;&#20989;&#25968; CF&#33258;&#24049;&#25317;&#26377;&#20004;&#20010;&#23646;&#24615;&#65292;&#21517;&#20026; P1 &#21644; P2&#65292;&#23427;&#20204;&#23545;&#20110; CF<small>p</small>&#65292;cf<small>1</small>&#65292;cf<small>2</small>&#65292;
cf<small>3</small>&#65292;cf<small>4</small> &#25110; cf<small>5</small>
&#32780;&#35328;&#37117;&#26159;&#19981;&#21487;&#35265;&#30340;&#12290;CF<small>p</small> &#20013;&#21517;&#20026; CFP1 &#30340;&#23646;&#24615;&#34987; cf<small>1</small>&#65292;cf<small>2</small>&#65292;
cf<small>3</small>&#65292;cf<small>4</small> &#21644; cf<small>5</small>&#65288;&#38500;
&#20102; CF&#65289;&#20849;&#20139;&#65292;&#36825;&#26679;&#65292;CFp
&#30340;&#38544;&#21547;&#21407;&#22411;&#38142;&#20013;&#30340;&#25152;&#26377;&#23646;&#24615;&#27809;&#26377;&#21517;&#20026; q1&#65292;q2 &#25110; &nbsp;CFP1 &#30340;&#12290;&#38656;&#35201;&#27880;&#24847;&#30340;&#26159;&#65292;CF &#21644; CF<small>p</small>
&#20043;&#38388;&#27809;&#26377;&#38544;&#21547;&#30340;&#21407;&#22411;&#20851;&#32852;&#12290;</p>

<p>&#19981;&#21516;&#20110;&#22522;&#20110;&#31867;&#30340;&#38754;&#21521;&#23545;&#35937;&#35821;&#35328;&#65292;ECMAScript
&#20013;&#30340;&#23646;&#24615;&#21487;&#20197;&#36890;&#36807;&#32473;&#23427;&#20204;&#36171;&#20540;&#30340;&#26041;&#24335;&#65292;&#25226;&#23427;&#20204;&#21160;&#24577;&#28155;&#21152;&#32473;&#23545;&#35937;&#12290;&#20063;&#23601;&#26159;&#35828;&#65292;&#26500;&#36896;&#20989;&#25968;&#19981;&#38656;&#35201;&#32473;&#25152;&#26500;&#36896;&#30340;&#23545;&#35937;&#30340;&#37096;&#20998;&#25110;&#20840;&#37096;&#23646;&#24615;&#21629;&#21517;&#25110;&#36171;&#20540;&#12290;&#22312;&#19978;&#38754;&#30340;&#22270;&#34920;&#20013;&#65292;&#36890;&#36807;&#32473;
CFp &#20013;&#30340;&#23646;&#24615;&#36171;&#26032;&#20540;&#23601;&#21487;&#20197;&#32473; cf<small>1</small>&#65292;cf<small>2</small>&#65292;
cf<small>3</small>&#65292;cf<small>4</small> &#21644; cf<small>5
</small>&#28155;&#21152;&#26032;&#30340;&#20849;&#20139;&#23646;&#24615;&#12290;</p>

</body>
</html>
